package com.cnap.model.strategy;

import com.cnap.model.intelligent.IntelligentHistoryVO;
import com.cnap.model.schedule.ClusterInfoVO;
import com.cnap.model.strategy.scale.ScaleStrategyVO;
import com.cnap.model.strategy.schedule.ScheduleStrategyVO;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 策略部署列表展示类2.0
 *
 * @author xc
 **/
public class MicroServiceVOV2 {
    /**
     * 微服务id
     */
    private String svcId;
    /**
     * 应用id
     */
    private String applicationId;
    /**
     * 应用名称
     */
    private String applicationName;
    /**
     * 微服务名称
     */
    private String svcName;
    // 大小
    private String size;
    // 厂商
    private String provider;
    // 调度策略
    private ScheduleStrategyVO scheduleStrategy;
    // 扩缩容策略
    private List<ScaleStrategyVO> scaleStrategy;

    /**
     * 访问路径
     */
    private List<String> paths;
    // 集群
    private List<ClusterInfoVO> clusterInfos;

    /**
     * 状态
     */
    private String status;
    // 分类
    private String category;
    // 更新时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
    // 智能调度决策历史记录
    private List<IntelligentHistoryVO> intelligentHistoryVOS;

    /**
     * get
     *
     * @return IntelligentHistoryVOS
     */
    public List<IntelligentHistoryVO> getIntelligentHistoryVOS() {
        return intelligentHistoryVOS;
    }

    /**
     * set
     *
     * @param intelligentHistoryVOS intelligentHistoryVOS
     */
    public void setIntelligentHistoryVOS(List<IntelligentHistoryVO> intelligentHistoryVOS) {
        this.intelligentHistoryVOS = intelligentHistoryVOS;
    }


    /**
     * get
     *
     * @return SvcId
     */
    public String getSvcId() {
        return svcId;
    }

    /**
     * set
     *
     * @param svcId svcId
     */
    public void setSvcId(String svcId) {
        this.svcId = svcId;
    }

    /**
     * get
     *
     * @return SvcName
     */
    public String getSvcName() {
        return svcName;
    }

    /**
     * set
     *
     * @param svcName svcName
     */
    public void setSvcName(String svcName) {
        this.svcName = svcName;
    }

    /**
     * get
     *
     * @return ApplicationId
     */
    public String getApplicationId() {
        return applicationId;
    }

    /**
     * set
     *
     * @param applicationId applicationId
     */
    public void setApplicationId(String applicationId) {
        this.applicationId = applicationId;
    }

    /**
     * get
     *
     * @return ApplicationName
     */
    public String getApplicationName() {
        return applicationName;
    }

    /**
     * set
     *
     * @param applicationName applicationName
     */
    public void setApplicationName(String applicationName) {
        this.applicationName = applicationName;
    }

    /**
     * get
     *
     * @return Size
     */
    public String getSize() {
        return size;
    }

    /**
     * set
     *
     * @param size size
     */
    public void setSize(String size) {
        this.size = size;
    }

    /**
     * get
     *
     * @return Provider
     */
    public String getProvider() {
        return provider;
    }

    /**
     * set
     *
     * @param provider provider
     */
    public void setProvider(String provider) {
        this.provider = provider;
    }

    /**
     * get
     *
     * @return ScheduleStrategy
     */
    public ScheduleStrategyVO getScheduleStrategy() {
        return scheduleStrategy;
    }

    /**
     * set
     *
     * @param scheduleStrategy scheduleStrategy
     */
    public void setScheduleStrategy(ScheduleStrategyVO scheduleStrategy) {
        this.scheduleStrategy = scheduleStrategy;
    }

    /**
     * get
     *
     * @return ScaleStrategy
     */
    public List<ScaleStrategyVO> getScaleStrategy() {
        return scaleStrategy;
    }

    /**
     * set
     *
     * @param scaleStrategy scaleStrategy
     */
    public void setScaleStrategy(List<ScaleStrategyVO> scaleStrategy) {
        this.scaleStrategy = scaleStrategy;
    }

    /**
     * get
     *
     * @return Paths
     */
    public List<String> getPaths() {
        return paths;
    }

    /**
     * set
     *
     * @param paths paths
     */
    public void setPaths(List<String> paths) {
        this.paths = paths;
    }

    /**
     * get
     *
     * @return ClusterInfos
     */
    public List<ClusterInfoVO> getClusterInfos() {
        return clusterInfos;
    }

    /**
     * set
     *
     * @param clusterInfos clusterInfos
     */
    public void setClusterInfos(List<ClusterInfoVO> clusterInfos) {
        this.clusterInfos = clusterInfos;
    }

    /**
     * get
     *
     * @return Status
     */
    public String getStatus() {
        return status;
    }

    /**
     * set
     *
     * @param status status
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * get
     *
     * @return Category
     */
    public String getCategory() {
        return category;
    }

    /**
     * set
     *
     * @param category category
     */
    public void setCategory(String category) {
        this.category = category;
    }

    /**
     * get
     *
     * @return UpdateTime
     */
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * set
     *
     * @param updateTime updateTime
     */
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
}
